/*
 * lanzadorPersonas.cpp
 *
 *  Created on: 13/07/2014
 *      Author: nicolas
 */

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <time.h>
#include <sstream>

#include "../defines.h"

using namespace std;

// arg 1 media, arg 2, desvio, arg 3 cant
// media y desvio en useg
int main(int argc, char **argv) {

	if (argc != 4) {
		perror("Cantidad de argumentos invalidos");
		exit(1);
	}

	int media = atoi(argv[1]);
	int desvio = atoi(argv[2]);
	int cantidad = atoi(argv[3]);

	int contador = INICIO_CONT_PERS;

	stringstream num;

	srand(time(NULL));

	for (int i = 0; i < cantidad; ++i) {
		int espera = (rand() % (2 * desvio)) + (media - desvio);

		usleep(espera);

		int pid = fork();
		if (pid < 0) {
			perror("error en fork");
			exit(1);
		}
		if (pid == 0) {
			num << contador;
			execlp("./persona", "Persona", num.str().c_str(), NULL);
			perror("No se pudo iniciar proceso Puerta de Entrada");
			exit(EXIT_FAILURE);
		}

		contador++;

	}

}

